package com.yeheng;

/**
 * @Classname DataShareDeo
 * @Description :
 * @Date 2021/2/25 20:23
 * @Created by Yeheng
 */
class printData{
    private static int index=0;
    public synchronized void priA(){
        while(index%3!=0){
            try {
                this.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("A");
        index++;
        this.notifyAll();
    }
    public synchronized void priB(){
        while(index%3!=1){
            try {
                this.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("B");
        index++;
        this.notifyAll();
    }
    public synchronized void priC(){
        while(index%3!=2){
            try {
                this.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("C");
        index++;
        this.notifyAll();
    }
}
public class DataShareDeo {
    public static void main(String[] args) {
        final printData data= new printData();
        new Thread(new Runnable(){
            public void run() {
                for(int i=0;i<10;i++){
                    data.priA();
                }
            }
        }).start();
        new Thread(new Runnable(){
            public void run() {
                for(int i=0;i<10;i++){
                    data.priB();
                }
            }
        }).start();

        new Thread(new Runnable(){
            public void run() {
                for(int i=0;i<10;i++){
                    data.priC();
                }
            }
        }).start();
    }
}

